<!DOCTYPE html><html lang="zh-CN" data-theme="light"><head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no"><title>如是的学习博客 - blog</title><meta name="author" content="rushiy"><meta name="copyright" content="rushiy"><meta name="format-detection" content="telephone=no"><meta name="theme-color" content="#ffffff"><meta property="og:type" content="website">
<meta property="og:title" content="如是的学习博客">
<meta property="og:url" content="https://rushiy.gitee.io/index.html">
<meta property="og:site_name" content="如是的学习博客">
<meta property="og:locale" content="zh_CN">
<meta property="og:image" content="https://rushiy.gitee.io/img/favicon.jpg">
<meta property="article:author" content="rushiy">
<meta name="twitter:card" content="summary">
<meta name="twitter:image" content="https://rushiy.gitee.io/img/favicon.jpg"><link rel="shortcut icon" href="/img/favicon.jpg"><link rel="canonical" href="https://rushiy.gitee.io/"><link rel="preconnect" href="//cdn.jsdelivr.net"/><link rel="preconnect" href="//busuanzi.ibruce.info"/><link rel="stylesheet" href="/css/index.css"><link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@fortawesome/fontawesome-free/css/all.min.css" media="print" onload="this.media='all'"><link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@fancyapps/ui/dist/fancybox.min.css" media="print" onload="this.media='all'"><script>const GLOBAL_CONFIG = { 
  root: '/',
  algolia: undefined,
  localSearch: undefined,
  translate: undefined,
  noticeOutdate: undefined,
  highlight: {"plugin":"highlighjs","highlightCopy":true,"highlightLang":true,"highlightHeightLimit":false},
  copy: {
    success: '复制成功',
    error: '复制错误',
    noSupport: '浏览器不支持'
  },
  relativeDate: {
    homepage: false,
    post: false
  },
  runtime: '',
  date_suffix: {
    just: '刚刚',
    min: '分钟前',
    hour: '小时前',
    day: '天前',
    month: '个月前'
  },
  copyright: undefined,
  lightbox: 'fancybox',
  Snackbar: undefined,
  source: {
    justifiedGallery: {
      js: 'https://cdn.jsdelivr.net/npm/flickr-justified-gallery/dist/fjGallery.min.js',
      css: 'https://cdn.jsdelivr.net/npm/flickr-justified-gallery/dist/fjGallery.min.css'
    }
  },
  isPhotoFigcaption: false,
  islazyload: false,
  isAnchor: false
}</script><script id="config-diff">var GLOBAL_CONFIG_SITE = {
  title: '如是的学习博客',
  isPost: false,
  isHome: true,
  isHighlightShrink: false,
  isToc: false,
  postUpdate: '2022-11-19 01:18:40'
}</script><noscript><style type="text/css">
  #nav {
    opacity: 1
  }
  .justified-gallery img {
    opacity: 1
  }

  #recent-posts time,
  #post-meta time {
    display: inline !important
  }
</style></noscript><script>(win=>{
    win.saveToLocal = {
      set: function setWithExpiry(key, value, ttl) {
        if (ttl === 0) return
        const now = new Date()
        const expiryDay = ttl * 86400000
        const item = {
          value: value,
          expiry: now.getTime() + expiryDay,
        }
        localStorage.setItem(key, JSON.stringify(item))
      },

      get: function getWithExpiry(key) {
        const itemStr = localStorage.getItem(key)

        if (!itemStr) {
          return undefined
        }
        const item = JSON.parse(itemStr)
        const now = new Date()

        if (now.getTime() > item.expiry) {
          localStorage.removeItem(key)
          return undefined
        }
        return item.value
      }
    }
  
    win.getScript = url => new Promise((resolve, reject) => {
      const script = document.createElement('script')
      script.src = url
      script.async = true
      script.onerror = reject
      script.onload = script.onreadystatechange = function() {
        const loadState = this.readyState
        if (loadState && loadState !== 'loaded' && loadState !== 'complete') return
        script.onload = script.onreadystatechange = null
        resolve()
      }
      document.head.appendChild(script)
    })
  
      win.activateDarkMode = function () {
        document.documentElement.setAttribute('data-theme', 'dark')
        if (document.querySelector('meta[name="theme-color"]') !== null) {
          document.querySelector('meta[name="theme-color"]').setAttribute('content', '#0d0d0d')
        }
      }
      win.activateLightMode = function () {
        document.documentElement.setAttribute('data-theme', 'light')
        if (document.querySelector('meta[name="theme-color"]') !== null) {
          document.querySelector('meta[name="theme-color"]').setAttribute('content', '#ffffff')
        }
      }
      const t = saveToLocal.get('theme')
    
          if (t === 'dark') activateDarkMode()
          else if (t === 'light') activateLightMode()
        
      const asideStatus = saveToLocal.get('aside-status')
      if (asideStatus !== undefined) {
        if (asideStatus === 'hide') {
          document.documentElement.classList.add('hide-aside')
        } else {
          document.documentElement.classList.remove('hide-aside')
        }
      }
    
    const detectApple = () => {
      if(/iPad|iPhone|iPod|Macintosh/.test(navigator.userAgent)){
        document.documentElement.classList.add('apple')
      }
    }
    detectApple()
    })(window)</script><meta name="generator" content="Hexo 6.3.0"></head><body><div id="sidebar"><div id="menu-mask"></div><div id="sidebar-menus"><div class="avatar-img is-center"><img src="/img/favicon.jpg" onerror="onerror=null;src='/img/friend_404.gif'" alt="avatar"/></div><div class="sidebar-site-data site-data is-center"><a href="/archives/"><div class="headline">文章</div><div class="length-num">28</div></a><a href="/tags/"><div class="headline">标签</div><div class="length-num">3</div></a><a href="/categories/"><div class="headline">分类</div><div class="length-num">0</div></a></div><hr/><div class="menus_items"><div class="menus_item"><a class="site-page" href="/"><i class="fa-fw fas fa-home"></i><span> 首页</span></a></div><div class="menus_item"><a class="site-page" href="/archives/"><i class="fa-fw fas fa-archive"></i><span> 时间轴</span></a></div><div class="menus_item"><a class="site-page" href="/tags/"><i class="fa-fw fas fa-tags"></i><span> 标签</span></a></div><div class="menus_item"><a class="site-page" href="/about/"><i class="fa-fw fas fa-heart"></i><span> 关于</span></a></div></div></div></div><div class="page" id="body-wrap"><header class="full_page" id="page-header"><nav id="nav"><span id="blog_name"><a id="site-name" href="/">如是的学习博客</a></span><div id="menus"><div class="menus_items"><div class="menus_item"><a class="site-page" href="/"><i class="fa-fw fas fa-home"></i><span> 首页</span></a></div><div class="menus_item"><a class="site-page" href="/archives/"><i class="fa-fw fas fa-archive"></i><span> 时间轴</span></a></div><div class="menus_item"><a class="site-page" href="/tags/"><i class="fa-fw fas fa-tags"></i><span> 标签</span></a></div><div class="menus_item"><a class="site-page" href="/about/"><i class="fa-fw fas fa-heart"></i><span> 关于</span></a></div></div><div id="toggle-menu"><a class="site-page"><i class="fas fa-bars fa-fw"></i></a></div></div></nav><div id="site-info"><h1 id="site-title">如是的学习博客</h1><div id="site_social_icons"><a class="social-icon" href="mailto:rushiy@reg.email.cn" target="_blank" title="Email"><i class="fas fa-envelope"></i></a></div></div><div id="scroll-down"><i class="fas fa-angle-down scroll-down-effects"></i></div></header><main class="layout" id="content-inner"><div class="recent-posts" id="recent-posts"><div class="recent-post-item"><div class="post_cover left"><a href="/django/Django%E6%A8%A1%E6%9D%BF%E7%B3%BB%E7%BB%9F/" title="Django模板系统"><img class="post_bg" src="" onerror="this.onerror=null;this.src='/img/404.jpg'" alt="Django模板系统"></a></div><div class="recent-post-info"><a class="article-title" href="/django/Django%E6%A8%A1%E6%9D%BF%E7%B3%BB%E7%BB%9F/" title="Django模板系统">Django模板系统</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="far fa-calendar-alt"></i><span class="article-meta-label">发表于</span><time datetime="2022-11-04T07:08:03.000Z" title="发表于 2022-11-04 15:08:03">2022-11-04</time></span></div><div class="content">官方文档：https://docs.djangoproject.com/zh-hans/3.0/ref/templates/builtins/#std:templatetag-for
关于模板渲染，只需要记两种特殊符号（即语法）：

&#123;&#123; var &#125;&#125;：调用变量var
&#123;% %&#125;：与逻辑相关，常与if、for逻辑语句一起使用。

模板是什么Web模板系统一个模板的渲染需要三方参与: 

模板引擎：主要参与模板渲染的系统；
内容源：输入的数据，比较常见的有数据库、XML文件等
模板：一般是和语言相关的文本

模板系统的工作过程如图所示。

由图可知, 模板和内容源由模板引擎处理和组合, 批量生成Web文档。
DTL模板我们知道，视图函数只是直接返回文本，而在实际生产环境中其实很少这样用，因为实际的页面大多是带有样式的HTML代码， 这可以让浏览器渲染出非常漂亮的页面。
目前市面上有非常多的模板系统，其中最知名最好用的就是DTL和jinja2。DTL是Django Template Language三个单词的缩写，也就是Djang ...</div></div></div><div class="recent-post-item"><div class="post_cover right"><a href="/django/Django%E8%A7%86%E5%9B%BE/" title="Django视图"><img class="post_bg" src="" onerror="this.onerror=null;this.src='/img/404.jpg'" alt="Django视图"></a></div><div class="recent-post-info"><a class="article-title" href="/django/Django%E8%A7%86%E5%9B%BE/" title="Django视图">Django视图</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="far fa-calendar-alt"></i><span class="article-meta-label">发表于</span><time datetime="2022-11-03T07:07:51.000Z" title="发表于 2022-11-03 15:07:51">2022-11-03</time></span></div><div class="content">一个视图函数，简称视图，是一个简单的Python函数，它接受Web请求并且返回Web响应。响应可以是一个HTML页面、一个404错误页面、重定向页面、XML文档、或者一张图片…
无论视图本身包含什么逻辑，都要返回响应。代码写在哪里都可以，只要在Python目录下面，一般放在项目的views.py文件中。
每个视图函数都负责返回一个HttpResponse对象，对象中包含生成的响应。
视图层中有两个重要的对象：请求对象(request)与响应对象(HttpResponse)。
django 的视图主要有 2 种，分别是 函数视图（FBV） 和 类视图（CBV）。
视图处理过程：

Django内置函数Django的主要内置函数如下图所示：




Http请求流程一个简单的http请求流程如下 ：

使用DNS域名解析；
发起TCP的3次握手
建立TCP连接后发起http请求；
服务器响应http请求，浏览器得到返回response；
浏览器解析response，并请求其它的资源（如js、css、图片等）；
浏览器对页面进行渲染。

如下图所示：



具体的流程解析请参考https:/ ...</div></div></div><div class="recent-post-item"><div class="post_cover left"><a href="/django/Django%E8%B7%AF%E7%94%B1%E7%B3%BB%E7%BB%9F/" title="Django路由系统"><img class="post_bg" src="" onerror="this.onerror=null;this.src='/img/404.jpg'" alt="Django路由系统"></a></div><div class="recent-post-info"><a class="article-title" href="/django/Django%E8%B7%AF%E7%94%B1%E7%B3%BB%E7%BB%9F/" title="Django路由系统">Django路由系统</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="far fa-calendar-alt"></i><span class="article-meta-label">发表于</span><time datetime="2022-11-02T07:07:34.000Z" title="发表于 2022-11-02 15:07:34">2022-11-02</time></span></div><div class="content">URL路由系统是什么Django路由系统反映了URL与视图函数之间的映射，为URL与视图函数建立起一一对应关系。URL与网址有着紧密关联，视图函数包括逻辑代码，用户在浏览器上输入网址，Django会在路由系统中查找对应的视图函数，运行其中的代码响应用户，把返回的信息展示在浏览器。
简而言之，路由系统就是URL路径和视图函数的一个对应关系，也可以称为转发器。
URL配置url路由系统格式URL路由系统格式如下:
123456789101112131415161718192021222324# devops/urls.py## 下面是创建项目后提供的urls配置信息&quot;&quot;&quot;devops URL ConfigurationThe `urlpatterns` list routes URLs to views. For more information please see:    https://docs.djangoproject.com/en/4.1/topics/http/urls/Examples:Function views   # 函数视图    1. ...</div></div></div><div class="recent-post-item"><div class="post_cover right"><a href="/django/%E8%B5%B0%E8%BF%9BDjango/" title="走进Django"><img class="post_bg" src="" onerror="this.onerror=null;this.src='/img/404.jpg'" alt="走进Django"></a></div><div class="recent-post-info"><a class="article-title" href="/django/%E8%B5%B0%E8%BF%9BDjango/" title="走进Django">走进Django</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="far fa-calendar-alt"></i><span class="article-meta-label">发表于</span><time datetime="2022-11-01T07:01:20.000Z" title="发表于 2022-11-01 15:01:20">2022-11-01</time></span></div><div class="content">Django是什么Django是一个由Python编写的一个开放源代码的Web应用框架。Python加Django是快速开发、设计、部署网站的最佳组合。
使用Django，只要很少的代码，Python的程序开发人员就可以轻松地完成一个正式网站所需要的大部分内容，并进一步开发出全功能的Web服务Django本身基于MVC模型，即Model（模型）+View（视图）+ Controller（控制器）设计模式，MVC模式使后续对程序的修改和扩展简化，并且使程序某一部分的重复利用成为可能。
MVC优势：

低耦合
开发快捷
部署方便
可重用性高
维护成本低
…

1.1.1 特点
强大的数据库功能
自带强大的后台功能
优雅的网址

1.1.2 MVC与MTV模型1.1.2.1 MVC模型MVC模式（Model–view–controller）是软件工程中的一种软件架构模式，把软件系统分为三个基本部分：模型（Model）、视图（View）和控制器（Controller）。
MVC以一种插件式的、松耦合的方式连接在一起。

模型M：编写程序应有的功能，负责业务对象与数据库的映射，即ORM。
视图V ...</div></div></div><div class="recent-post-item"><div class="post_cover left"><a href="/python/python%E5%B8%B8%E7%94%A8%E6%A8%A1%E5%9D%97/" title="python常用模块"><img class="post_bg" src="" onerror="this.onerror=null;this.src='/img/404.jpg'" alt="python常用模块"></a></div><div class="recent-post-info"><a class="article-title" href="/python/python%E5%B8%B8%E7%94%A8%E6%A8%A1%E5%9D%97/" title="python常用模块">python常用模块</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="far fa-calendar-alt"></i><span class="article-meta-label">发表于</span><time datetime="2022-10-28T15:34:07.000Z" title="发表于 2022-10-28 23:34:07">2022-10-28</time></span></div><div class="content"></div></div></div><div class="recent-post-item"><div class="post_cover right"><a href="/python/python%E6%A8%A1%E5%9D%97%E4%B8%8E%E5%8C%85/" title="python模块与包"><img class="post_bg" src="" onerror="this.onerror=null;this.src='/img/404.jpg'" alt="python模块与包"></a></div><div class="recent-post-info"><a class="article-title" href="/python/python%E6%A8%A1%E5%9D%97%E4%B8%8E%E5%8C%85/" title="python模块与包">python模块与包</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="far fa-calendar-alt"></i><span class="article-meta-label">发表于</span><time datetime="2022-10-27T10:33:59.000Z" title="发表于 2022-10-27 18:33:59">2022-10-27</time></span></div><div class="content">我们知道，函数是完成特定功能的一段程序，是可复用程序的最小组成单位；类是包含一组数据及操作这些数据或传递消息的函数的集合。模块是在函数和类的基础上，将一系列相关代码组织到一起的集合体。模块和函数的关系如图所示：

模块是一个包含所有pythoner定义的函数、类和变量的.py文件。简而言之，模块就是pythoner写的.py文件。每个扩展名为.py的Python程序都是一个独立的模块(Module)。模块可以被别的程序引入，以使用该模块中的函数等功能。这也是使用python标准库的方法。
为了方便调用将一些功能相近的模块组织在一起，或是将一个较为复杂的模块拆分为多个组成部分，可以将这些.py源程序文件放在同一个文件夹下，按照Python的规则进行管理，这样的文件夹和其中的文件就称为包，库则是功能相关联的包的集合。import加载的模块分为四个通用类别：　

使用python编写的代码，即.py文件；

已被编译为共享库或DLL的C或C++扩展；

包好一组模块的包；

使用C编写并链接到python解释器的内置模块；


为什么要使用模块呢？
随着程序的发展，功能越来越多，为了方便管理 ...</div></div></div><div class="recent-post-item"><div class="post_cover left"><a href="/python/python%E7%B1%BB/" title="python类"><img class="post_bg" src="" onerror="this.onerror=null;this.src='/img/404.jpg'" alt="python类"></a></div><div class="recent-post-info"><a class="article-title" href="/python/python%E7%B1%BB/" title="python类">python类</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="far fa-calendar-alt"></i><span class="article-meta-label">发表于</span><time datetime="2022-10-26T15:42:49.000Z" title="发表于 2022-10-26 23:42:49">2022-10-26</time></span></div><div class="content">面向过程和面向对象面向过程面向过程的程序设计的核心是过程（流水线式思维），过程即解决问题的步骤，面向过程的设计就好比精心设计好一条流水线，考虑周全什么时候处理什么东西。
优点：极大的降低了写程序的复杂度，只需要顺着要执行的步骤，堆叠代码即可。
缺点：一套流水线或者流程就是用来解决一个问题，代码牵一发而动全身。
应用场景：一旦完成基本很少改变的场景，著名的例子有Linux內核、git、Apache HTTP Server等。
面向对象面向对象的程序设计的核心是对象（上帝式思维），要理解对象为何物，必须把自己当成上帝，上帝眼里世间存在的万物皆为对象，不存在的也可以创造出来。
优点是：解决了程序的扩展性。对某一个对象单独修改，会立刻反映到整个体系中，如对游戏中一个人物参数的特征和技能修改都很容易。
缺点：可控性差，无法像面向过程的程序设计流水线式的可以很精准的预测问题的处理流程与结果，面向对象的程序一旦开始就由对象之间的交互解决问题，即便是上帝也无法预测最终结果。
应用场景：需求经常变化的软件，一般需求的变化都集中在用户层，互联网应用、企业内部软件、游戏等都是面向对象的程序设计大显身手的好地 ...</div></div></div><div class="recent-post-item"><div class="post_cover right"><a href="/python/python%E5%86%85%E7%BD%AE%E5%87%BD%E6%95%B0/" title="python内置函数"><img class="post_bg" src="" onerror="this.onerror=null;this.src='/img/404.jpg'" alt="python内置函数"></a></div><div class="recent-post-info"><a class="article-title" href="/python/python%E5%86%85%E7%BD%AE%E5%87%BD%E6%95%B0/" title="python内置函数">python内置函数</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="far fa-calendar-alt"></i><span class="article-meta-label">发表于</span><time datetime="2022-10-25T08:32:09.000Z" title="发表于 2022-10-25 16:32:09">2022-10-25</time></span></div><div class="content">
本文分类及部分代码参考https://blog.csdn.net/weixin_44751294/article/details/126217872

内置函数官网文档地址：https://docs.python.org/zh-cn/3.8/library/functions.html
python内置函数是Python提供的, 可以直接拿来直接用的函数。Python解释器内置了很多函数和类型，可以在任何时候使用它们。常用69个函数如下：





python内置函数





abs()
delattr()
hash()
memoryview()
set()


all()
dict()
help()
min()
setattr()


any()
dir()
hex()
next()
slice()


ascii()
divmod()
id()
object()
sorted()


bin()
enumerate()
input()
oct()
staticmethod()


bool()
eval()
int()
open()
str()


breakpoint()
 ...</div></div></div><div class="recent-post-item"><div class="post_cover left"><a href="/python/python%E5%87%BD%E6%95%B0%E8%BF%9B%E9%98%B6/" title="python函数进阶"><img class="post_bg" src="" onerror="this.onerror=null;this.src='/img/404.jpg'" alt="python函数进阶"></a></div><div class="recent-post-info"><a class="article-title" href="/python/python%E5%87%BD%E6%95%B0%E8%BF%9B%E9%98%B6/" title="python函数进阶">python函数进阶</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="far fa-calendar-alt"></i><span class="article-meta-label">发表于</span><time datetime="2022-10-24T02:31:33.000Z" title="发表于 2022-10-24 10:31:33">2022-10-24</time></span></div><div class="content">装饰器函数装饰器（decorator：[ˈdekəreɪtər]）的本质是一个闭包函数，功能是用于包装另一个函数或类，它可以让其他函数在不需要改动代码的和调用方式的情况下动态增加功能，这样有助于让我们的代码更简短。简单地说：装饰器函数是在不改变原函数调用方式的基础上在原函数的前、后添加功能。
装饰器完美的遵循了开放封闭原则：

对扩展是开放的：给函数添加新功能是必然的，任何一个程序，不可能在设计之初就已经想好了所有的功能并且未来不做任何更新和修改。所以我们必须允许代码扩展、添加新功能。

对修改是封闭的：pythoner写的一个函数，很有可能已经交付给其他人使用了，如果这个时候对函数进行了修改，很有可能影响其他已经在使用该函数的用户。


装饰器的形成过程在很久以前，pythoner编制了一个函数，并且已经交付使用。函数代码如下：
12def old():    print(&#x27;这是很久之前的一个函数&#x27;)

现在我们需要对old函数添加一些新的功能，如计算old函数的执行时间。那么我们现在需要定义一个新的时间函数timer
1234567891011121314imp ...</div></div></div><div class="recent-post-item"><div class="post_cover right"><a href="/python/python%E5%87%BD%E6%95%B0/" title="python函数"><img class="post_bg" src="" onerror="this.onerror=null;this.src='/img/404.jpg'" alt="python函数"></a></div><div class="recent-post-info"><a class="article-title" href="/python/python%E5%87%BD%E6%95%B0/" title="python函数">python函数</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="far fa-calendar-alt"></i><span class="article-meta-label">发表于</span><time datetime="2022-10-23T01:31:22.000Z" title="发表于 2022-10-23 09:31:22">2022-10-23</time></span></div><div class="content">函数是组织好的，可重复使用的，用来实现单一或相关联功能的代码段。函数能提高应用的模块性，和代码的重复利用率。
Python中函数的应用非常广泛，前面章节中我们已经接触过多个函数，比如input() 、print()、range()、len() 函数等等，这些都是 Python的内置函数，可以直接使用。
除了可以直接使用的内置函数外，Python 还支持自定义函数，即将一段有规律的、可重复使用的代码定义成函数，从而达到一次编写、多次调用的目的。
下图是python提供的68个内置函数。
官网地址：https://docs.python.org/zh-cn/3.8/library/functions.html


函数的定义和调用函数的定义函数遵循如下的规则：

函数代码块以 def关键词开头，后接函数标识符名称和圆括号()。
任何传入参数和自变量必须放在圆括号中间，圆括号之间可以用于定义参数。
函数的第一行语句可以选择性地使用文档字符串—用于存放函数说明。
函数内容以冒号起始，并且缩进。
return [表达式] 结束函数，选择性地返回一个值给调用方。不带表达式的return相当于返回  ...</div></div></div><nav id="pagination"><div class="pagination"><span class="page-number current">1</span><a class="page-number" href="/page/2/#content-inner">2</a><a class="page-number" href="/page/3/#content-inner">3</a><a class="extend next" rel="next" href="/page/2/#content-inner"><i class="fas fa-chevron-right fa-fw"></i></a></div></nav></div><div class="aside-content" id="aside-content"><div class="card-widget card-info"><div class="is-center"><div class="avatar-img"><img src="/img/favicon.jpg" onerror="this.onerror=null;this.src='/img/friend_404.gif'" alt="avatar"/></div><div class="author-info__name">rushiy</div><div class="author-info__description"></div></div><div class="card-info-data site-data is-center"><a href="/archives/"><div class="headline">文章</div><div class="length-num">28</div></a><a href="/tags/"><div class="headline">标签</div><div class="length-num">3</div></a><a href="/categories/"><div class="headline">分类</div><div class="length-num">0</div></a></div><div class="card-info-social-icons is-center"><a class="social-icon" href="mailto:rushiy@reg.email.cn" target="_blank" title="Email"><i class="fas fa-envelope"></i></a></div></div><div class="sticky_layout"><div class="card-widget card-recent-post"><div class="item-headline"><i class="fas fa-history"></i><span>最新文章</span></div><div class="aside-list"><div class="aside-list-item"><a class="thumbnail" href="/django/Django%E6%A8%A1%E6%9D%BF%E7%B3%BB%E7%BB%9F/" title="Django模板系统"><img src="" onerror="this.onerror=null;this.src='/img/404.jpg'" alt="Django模板系统"/></a><div class="content"><a class="title" href="/django/Django%E6%A8%A1%E6%9D%BF%E7%B3%BB%E7%BB%9F/" title="Django模板系统">Django模板系统</a><time datetime="2022-11-04T07:08:03.000Z" title="发表于 2022-11-04 15:08:03">2022-11-04</time></div></div><div class="aside-list-item"><a class="thumbnail" href="/django/Django%E8%A7%86%E5%9B%BE/" title="Django视图"><img src="" onerror="this.onerror=null;this.src='/img/404.jpg'" alt="Django视图"/></a><div class="content"><a class="title" href="/django/Django%E8%A7%86%E5%9B%BE/" title="Django视图">Django视图</a><time datetime="2022-11-03T07:07:51.000Z" title="发表于 2022-11-03 15:07:51">2022-11-03</time></div></div><div class="aside-list-item"><a class="thumbnail" href="/django/Django%E8%B7%AF%E7%94%B1%E7%B3%BB%E7%BB%9F/" title="Django路由系统"><img src="" onerror="this.onerror=null;this.src='/img/404.jpg'" alt="Django路由系统"/></a><div class="content"><a class="title" href="/django/Django%E8%B7%AF%E7%94%B1%E7%B3%BB%E7%BB%9F/" title="Django路由系统">Django路由系统</a><time datetime="2022-11-02T07:07:34.000Z" title="发表于 2022-11-02 15:07:34">2022-11-02</time></div></div><div class="aside-list-item"><a class="thumbnail" href="/django/%E8%B5%B0%E8%BF%9BDjango/" title="走进Django"><img src="" onerror="this.onerror=null;this.src='/img/404.jpg'" alt="走进Django"/></a><div class="content"><a class="title" href="/django/%E8%B5%B0%E8%BF%9BDjango/" title="走进Django">走进Django</a><time datetime="2022-11-01T07:01:20.000Z" title="发表于 2022-11-01 15:01:20">2022-11-01</time></div></div><div class="aside-list-item"><a class="thumbnail" href="/python/python%E5%B8%B8%E7%94%A8%E6%A8%A1%E5%9D%97/" title="python常用模块"><img src="" onerror="this.onerror=null;this.src='/img/404.jpg'" alt="python常用模块"/></a><div class="content"><a class="title" href="/python/python%E5%B8%B8%E7%94%A8%E6%A8%A1%E5%9D%97/" title="python常用模块">python常用模块</a><time datetime="2022-10-28T15:34:07.000Z" title="发表于 2022-10-28 23:34:07">2022-10-28</time></div></div></div></div><div class="card-widget card-tags"><div class="item-headline"><i class="fas fa-tags"></i><span>标签</span></div><div class="card-tag-cloud"><a href="/tags/django/" style="font-size: 1.1em; color: #999">django</a> <a href="/tags/docker/" style="font-size: 1.3em; color: #99a1ac">docker</a> <a href="/tags/python/" style="font-size: 1.5em; color: #99a9bf">python</a></div></div><div class="card-widget card-archives"><div class="item-headline"><i class="fas fa-archive"></i><span>归档</span></div><ul class="card-archive-list"><li class="card-archive-list-item"><a class="card-archive-list-link" href="/archives/2022/11/"><span class="card-archive-list-date">十一月 2022</span><span class="card-archive-list-count">4</span></a></li><li class="card-archive-list-item"><a class="card-archive-list-link" href="/archives/2022/10/"><span class="card-archive-list-date">十月 2022</span><span class="card-archive-list-count">16</span></a></li><li class="card-archive-list-item"><a class="card-archive-list-link" href="/archives/2022/09/"><span class="card-archive-list-date">九月 2022</span><span class="card-archive-list-count">8</span></a></li></ul></div><div class="card-widget card-webinfo"><div class="item-headline"><i class="fas fa-chart-line"></i><span>网站资讯</span></div><div class="webinfo"><div class="webinfo-item"><div class="item-name">文章数目 :</div><div class="item-count">28</div></div><div class="webinfo-item"><div class="item-name">本站访客数 :</div><div class="item-count" id="busuanzi_value_site_uv"><i class="fa-solid fa-spinner fa-spin"></i></div></div><div class="webinfo-item"><div class="item-name">本站总访问量 :</div><div class="item-count" id="busuanzi_value_site_pv"><i class="fa-solid fa-spinner fa-spin"></i></div></div><div class="webinfo-item"><div class="item-name">最后更新时间 :</div><div class="item-count" id="last-push-date" data-lastPushDate="2022-11-18T17:18:40.301Z"><i class="fa-solid fa-spinner fa-spin"></i></div></div></div></div></div></div></main><footer id="footer"><div id="footer-wrap"><div class="copyright">&copy;2022 By rushiy</div><div class="framework-info"><span>框架 </span><a target="_blank" rel="noopener" href="https://hexo.io">Hexo</a><span class="footer-separator">|</span><span>主题 </span><a target="_blank" rel="noopener" href="https://github.com/jerryc127/hexo-theme-butterfly">Butterfly</a></div></div></footer></div><div id="rightside"><div id="rightside-config-hide"><button id="darkmode" type="button" title="浅色和深色模式转换"><i class="fas fa-adjust"></i></button><button id="hide-aside-btn" type="button" title="单栏和双栏切换"><i class="fas fa-arrows-alt-h"></i></button></div><div id="rightside-config-show"><button id="rightside_config" type="button" title="设置"><i class="fas fa-cog fa-spin"></i></button><button id="go-up" type="button" title="回到顶部"><i class="fas fa-arrow-up"></i></button></div></div><div><script src="/js/utils.js"></script><script src="/js/main.js"></script><script src="https://cdn.jsdelivr.net/npm/@fancyapps/ui/dist/fancybox.umd.min.js"></script><div class="js-pjax"></div><script src="https://cdn.jsdelivr.net/npm/butterfly-extsrc/dist/activate-power-mode.min.js"></script><script>POWERMODE.colorful = true;
POWERMODE.shake = true;
POWERMODE.mobile = false;
document.body.addEventListener('input', POWERMODE);
</script><script async data-pjax src="//busuanzi.ibruce.info/busuanzi/2.3/busuanzi.pure.mini.js"></script></div></body></html>